#ifndef _SEM_HPP_
#define _SEM_HPP_

#include <iostream>
#include <semaphore.h>

// 对sem_t信号量进行封装
class Sem
{
private:
    sem_t _sem;
public:
    Sem(int value)
    {
        sem_init(&_sem,0,value);
    }
    ~Sem()
    {
        sem_destroy(&_sem);
    }

    // 对信号量的PV操作
    // 1.P
    void p_Operator()
    {
        sem_wait(&_sem); // --
    }
    // 2.V
    void v_Operator()
    {
        sem_post(&_sem); // ++
    }
};

#endif